package com.xmg.design23.d8_decorate;

/**
 * 装饰器（Decorator）模式的定义：指在不改变现有对象结构的情况下，动态地给该对象增加一些职责（即增加其额外功能）的模式，
 * 它属于对象结构型模式。
 * 装饰器模式的主要优点有：
 * 装饰器是继承的有力补充，比继承灵活，在不改变原有对象的情况下，动态的给一个对象扩展功能，即插即用
 * 通过使用不用装饰类及这些装饰类的排列组合，可以实现不同效果
 * 装饰器模式完全遵守开闭原则
 * Java I/O 的设计框架便是使用的 装饰者模式
 * @Author: mazhongqing
 * @Date: 2021/3/24 16:50
 */
public class Test {
    public static void main(String[] args) {
        FastFood food = new FriedRice();
        System.out.println(food.getDesc()+"--"+food.cost()+"元");
        System.out.println("=========================");
        food = new Egg(food);
        System.out.println(food.getDesc()+"--"+food.cost()+"元");
        food = new Egg(food);
        System.out.println(food.getDesc()+"--"+food.cost()+"元");
    }
}
